HarmonyOS-鸿蒙app开发 —基于java_流转_流转架构

HarmonyOS-鸿蒙app开发 —基于java_流转_流转架构

HarmonyOS流转提供了一组API库,可让用户应用程序更轻松、快捷地完成流转体验。HarmonyOS流转架构有如下优势:

  • 统一流转管理UI,支持设备发现、选择以及任务管理。
  • 支持远程服务调用等能力,可轻松设计业务。
  • 支持多个应用同时进行流转。
  • 支持不同形态设备,如手机、平板、TV、手表等。

流转架构如下图所示。

  • 流转任务管理服务:在流转发起端,接受用户应用程序注册,提供流转入口、状态显示、退出流转等管理能力。
    说明
  • 分布式任务调度:提供远程服务启动、远程服务连接、远程迁移等能力,并通过不同能力组合,支撑用户应用程序完成跨端迁移或多端协同的业务体验。
  • 分布式安全:提供E2E的加密通道,为用户应用程序提供安全的跨端传输机制,保证“正确的人,通过正确的设备,正确地使用数据”
  • 分布式软总线:使用基于手机、平板、智能穿戴、智慧屏等分布式设备的统一通信基座,为设备之间的互联互通提供统一的分布式通信能力。

跨端迁移流程

以设备A的应用和设备B的应用进行跨端迁移为例,业务流程如下:

  1. 流转准备:设备A上的应用向流转任务管理服务注册一个流转回调
    • Alt1-系统推荐流转:系统感知周边有可用设备后,主动为用户提供可选择流转的设备信息,并在用户完成设备选择后回调通知应用开始流转,将用户选择的设备B的设备信息提供给应用。
    • Alt2-用户手动流转:系统在用户手动点击流转图标后,被动为用户提供可选择交互的设备信息,并在用户完成设备选择后回调通知应用开始流转,将用户选择的设备B的设备信息提供给应用。
  2. 流转完成:设备A上的应用通过调用分布式任务调度的能力,如continueAbility等,向设备B的应用发起跨端迁移。流转中将流转状态上报到流转任务管理服务。
    说明

    跨端迁移后,设备A上的应用需要自行退出。

多端协同流程

以设备A的应用和设备B的应用进行多端协同为例,业务流程如下:

  1. 流转准备:设备A上的应用向流转任务管理服务注册一个流转回调:
    • Alt1-系统推荐流转:系统感知周边有可用设备后,主动为用户提供可选择流转的设备信息,并在用户完成设备选择后回调通知应用开始流转,将用户选择的设备B的设备信息提供给应用。
    • Alt2-用户手动流转:系统在用户手动点击流转图标后,被动为用户提供可选择交互的设备信息,并在用户完成设备选择后回调通知应用开始流转,将用户选择的设备B的设备信息提供给应用。
  2. 流转进行:设备A上的应用通过调用分布式任务调度的能力,如startAbility, connectAbility等,向设备B的应用发起多端协同。流转中将流转状态上报到流转任务管理服务。
  3. 流转结束:用户通过设备A的流转任务管理界面结束流转。用户点击结束任务后,流转任务管理服务回调通知应用取消流转。设备A上的应用通过调用分布式任务调度的能力,如stopAbility, disconnectAbility等,终止和设备B的多端协同。流转结束后将流转状态上报到流转任务管理服务,并向流转任务管理服务注销流转回调。
说明

设备A和B进行多端协同后,设备A和设备C重复如上流程,可实现设备A、B、C进行多端协同,此时设备A是中心控制点。

兼容性设计

不管跨端迁移还是多端协同,流转都是由两个设备上的用户应用程序共同完成的,两个设备上的用户应用程序需要做如下兼容设计:

  • 跨端应用版本兼容

    建议用户应用程序设计版本号和最小兼容版本号。只有当设备A的用户应用程序版本号>=设备B的用户应用程序最小兼容版本号,且设备B的用户应用程序版本号>=设备A的用户应用程序最小兼容版本号时,才允许进行流转。

    对于跨端迁移或多端协同场景,如果是同一个应用在A端和B端进行通信,此时流转任务管理服务提供了版本兼容性检查机制,可以将满足条件的设备筛选出来。

    说明

    流转任务管理服务提供的版本兼容性检查机制要求两个设备是同一个用户应用程序。

    要求用户应用程序在填写config.json时,填写minCompatibleVersionCode字段(最小兼容版本号)和code字段(当前版本号)。minCompatibleVersionCode标识app pack能够兼容的最低历史版本号。该标签值为32位整形数值,非负整数。如果应用/服务未配置minCompatibleVersionCode,则系统将minCompatibleVersionCode默认填写为当前版本号。

    对于多端协同,如果是不同应用之间的A、B端协同,则需要不同应用自己实现版本兼容性检查机制。

  • 跨端原子化服务安装

    跨端被拉起的程序建议设计为原子化服务。即当设备A的用户应用程序向设备B的原子化服务发起多端协同,如果设备B上没有安装对应服务,HarmonyOS会自动下载相关原子化服务,和A端的用户应用程序一起进行多端协同。如跨端被拉起的程序设计为传统方式的需要安装的应用,则当设备A的用户应用程序向设备B的原子化服务发起多端协同,如果设备B上没有安装相关应用,会提示流转失败。

0 0 投票数
文章评分
订阅评论
提醒
0 评论
最旧
最新 最多投票
内联反馈
查看所有评论
0
希望看到您的想法,请您发表评论x